The primary objective in signal coding, which also may be referred to as compression, is to minimize the amount of bits being stored or communicated, thus increasing efficiency of storing, distributing, and transmitting the information. Compression is a very general term which is often associated with coding discrete memoryless sources—where any existing pattern in the source evolution is treated statistically rather than in a model form. The present invention pertains primarily to the type of coding where a data sequence evolves according to some quantifiable rule, and more specifically, pertains to obtaining a model—a closed form representation of this rule. The process of transforming a source sequence into a set of model parameters is called encoding and restoring is referred to as decoding.
Typically in encoding, an input signal, which we refer to as a source signal, is divided into intervals, often called frames, sections, or events. Each frame can be transformed by windowing and/or filtering, and possibly other operations, to obtain a windowed/filtered/transformed frame. Standard oscillator models transform a current data frame into a small set of parameters consisting of delays or pointers and weight coefficients associated with them. The pointers reference fixed-lengths blocks in a buffer containing a restored version of the earlier acquired data frames. The restoration of a frame takes place once its model parameters have been estimated, and the restored frame is kept in memory, creating a sequence of historical data that represents a restored version of the input sequence. The blocks of these historic data are chosen so that their weighted sum provides the ‘best match’ to the current data frame, where ‘best match’ is defined as the one which minimizes the mean squared error between the current frame and its model. In this way, an input signal is replaced by a set of integer address codes pointing to the match locations and the multiplier coefficients associated with weights of the match data blocks.
One limitation of the standard oscillators is the clear delineation they make between the previously modeled frames of data and the current frame being modeled, in that the data in the current frame cannot participate in deriving the model parameters for that frame. This approach works well for modeling source patterns that re-occur on the time scale that exceeds at least one frame length. Thus oscillators are considered to be methods for modeling long scale structures in data.
Most signal classes, however, contain both short and long scale patterns. In order to comprehensively model these signals, some popular approaches employ two or more separate models to encode the different scale source patterns. For instance, in speech coding, modern toll-quality codecs typically utilize three models in tandem, first a short-term linear predictor, followed by an “adaptive codebook” coder, which models the long scale structure, and finally a third model to encode the residual remaining after the first two models have been applied. Each of the three models has a separate fixed coding budget so the entire code for each speech frame contains three separate sets of coding parameters.
The same underlying approach, where multiple sets of parameters are used to encode a frame, can be said to permeate most other existing coding schemes as well. For example, transform-based methods constitute the most widely used approach for modeling and encoding source sequences. These methods split a signal frame into multiple components, such as frequency bands, wavelets, or other types of waveforms, and these components are coded separately, generating multiple sets of parameters for each frame. For instance, in speech coding, the Multiband Excitation family coders (MBE, IMBE, and AMBE) divide an input signal into frequency bands and encode the individual bands separately, based on voiced/unvoiced characteristics of each band.
Encoding signals with multiple sets of parameters is not efficient if a comparable modeling quality can be achieved with a smaller, single set of parameters. The need to maximize transmission rates and to minimize memory in storage systems motivates development of the more efficient coding technologies described in the invention.